#include "SeqQueue.h"
//打印队列元素
void SeqQueuePrintChar(SeqQueue *queue,const char *msg)
{
    if(queue==NULL)
    {//参数错误
        return;
    }
    printf("\n%s\n",msg);
    if(queue->size==0)
    {//队列为空
        return;
    }
    size_t i=0;
//    printf("队首： ");
    for(i=0;i<queue->size;i++)
    {
        printf("[%c] ",queue->data[i]);
    }
    printf("\n");
}
//初始化
void SeqQueueInit(SeqQueue *queue)
{
    if(queue==NULL)
    {
        return;
    }
    queue->size=0;
}
//入队列操作
void SeqQueuePush(SeqQueue *queue,SeqQueueType value)
{
    if(NULL==queue)
    {
        return;
    }
    if(queue->size>=SeqQueueSize)
    {//队列已满
        return;
    }
    queue->data[queue->size]=value;
    queue->size++;
}
//出队列操作
void SeqQueuePop(SeqQueue *queue)
{
    if(NULL==queue)
    {
        return;
    }
    if(0==queue->size)
    {//队列已空
        return;
    }
    size_t i=0;
    for(i=0;i<queue->size-1;i++)
    {
        queue->data[i]=queue->data[i+1];
    }
    queue->size--;
}
//取队首元素
int SeqQueueFront(SeqQueue *queue,SeqQueueType *tmp)
{
    if(NULL==queue||NULL==tmp)
    {
        return 0;
    }
    if(0==queue->size)
    {
        return 0;
    }
    *tmp=queue->data[0];
    return 1;
}
//求对队列的大小
size_t SeqQueueGetSize(SeqQueue *queue)
{
    if(NULL==queue)
    {
        return (size_t)-1;
    }
    return queue->size;
}
//对队列进行判空
int SeqQueueEmpty(SeqQueue *queue)
{
    if(NULL==queue)
    {
        return 0;
    }
    return 0==queue->size;
}
//销毁队列
void SeqQueueDestroy(SeqQueue *queue)
{
    if(NULL==queue)
    {
        return;
    }
    queue->size=0;
}
